package cn.lg.soar.core.enums;

import cn.lg.soar.common.data.dict.IDict;

/**
 * @author luguoxiang 469599794@qq.com
 * @Date: 2024/12/28 23:29
 * 开源项目：https://gitee.com/lgx1992/lg-soar 求star！请给我star！请帮我点个star！
 */
public enum PermitLevelEnum implements IDict<Integer> {
    /**
     * 需授权访问(用户-角色-权限)
     */
    closed("关闭的", 0),
    /**
     * 需授权访问(用户-角色-权限)
     */
    authorized("需授权", 1),
    /**
     * 指定用户类型可访问（比如会员相关接口对会员用户完全开放无需授权，但对其他用户却不可访问）
     */
    user_type("指定用户类型", 2),
    /**
     * 需登录访问
     */
    authenticated("需登录", 3),
    /**
     * 匿名访问同时可获取登录人信息（比如文章详情无需登录也可以访问，但是登录后可以知道自己是否收藏点赞了）
     */
    identifiable("可识别的", 4),
    /**
     * 匿名访问不可获取登录人信息（即便已经登录也无法获取当前登录人信息）
     */
    anon("匿名的", 5),
    ;

    PermitLevelEnum(String label, int value){
        this.label = label;
        this.value = value;
    }

    private final String label;
    private final int value;
    @Override
    public Integer getValue() {
        return this.value;
    }
    @Override
    public String getLabel() {
        return this.label;
    }

}
